package com.bto.leasetest.request;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;


@NoArgsConstructor
@Data
public class LeaseApprovalNotifyReq {
    @JsonProperty("body")
    private List<Body> body;
    @JsonProperty("prjProjectOperatingLeaseStatus")
    private PrjProjectOperatingLeaseStatus prjProjectOperatingLeaseStatus;
    @JsonProperty("head")
    private Head head;

    @NoArgsConstructor
    @Data
    public static class PrjProjectOperatingLeaseStatus {
        @JsonProperty("contractNumber")
        private String contractNumber;
        @JsonProperty("employee")
        private String employee;
        @JsonProperty("email")
        private String email;
        @JsonProperty("tenantStatus")
        private String tenantStatus;
        @JsonProperty("projectStatus")
        private String projectStatus;
        @JsonProperty("farmerSignStatus")
        private String farmerSignStatus;
        @JsonProperty("paymentApplyStatus")
        private String paymentApplyStatus;
        @JsonProperty("paymentStatus")
        private String paymentStatus;
        @JsonProperty("contractStatus")
        private String contractStatus;
        @JsonProperty("contractTextStatus")
        private String contractTextStatus;
        @JsonProperty("contractPowerStatus")
        private String contractPowerStatus;
        @JsonProperty("reason")
        private String reason;
        @JsonProperty("paymentDate")
        private String paymentDate;
        @JsonProperty("paymentAmount")
        private Integer paymentAmount;
        @JsonProperty("partnersContractEncr")
        private String partnersContractEncr;
    }

    @NoArgsConstructor
    @Data
    public static class Head {
        @JsonProperty("errorCode")
        private String errorCode;
        @JsonProperty("errorMessage")
        private String errorMessage;
        @JsonProperty("serialNumber")
        private String serialNumber;
        @JsonProperty("systemId")
        private String systemId;
        @JsonProperty("transactionCode")
        private String transactionCode;
        @JsonProperty("transactionTime")
        private String transactionTime;
        @JsonProperty("version")
        private Integer version;
    }

    @NoArgsConstructor
    @Data
    public static class Body {
        @JsonProperty("prjDocumentStatusDto")
        private PrjDocumentStatusDto prjDocumentStatusDto;

        @NoArgsConstructor
        @Data
        public static class PrjDocumentStatusDto {
            @JsonProperty("partnersContractNumber")
            private String partnersContractNumber;
            @JsonProperty("idCardNo")
            private String idCardNo;
        }
    }
}
